#ifndef EDITORCOMPASES_H
#define EDITORCOMPASES_H

#include "editordatos.h"
#include "paneltabla.h"
#include "preparadortabla.h"
#include "compas.h"

class EditorCompases : public EditorDatos
{
    Q_OBJECT
public:
    EditorCompases(QWidget* ventanaPadre);
    ~EditorCompases();

    bool mostrarDialogoSeleccion(Compas& compas); 

    QString getIdentificadorDialogo(bool edicion) { 
        return edicion ? "edicion compas" : "seleccion compass"; }

	void setListaCompases(QList<Compas> listaCompases) { this->listaCompases = listaCompases; }
	QList<Compas> getListaCompases() { return listaCompases; }

protected:
    void prepararTabla(PanelTabla* panelTabla, bool edicion);
    virtual void actualizarTabla();

    virtual void anadirDatos(Compas& compas) { 
        listaCompases.append(compas);
    }
    virtual void modificarDatos(int indice, Compas& compas) {
        listaCompases[indice] = compas;
    }
    virtual void eliminarDatos(int indice) { 
        listaCompases.removeAt(indice);
    }

    bool editar(const QString& titulo, Compas& compas);

protected slots:
    void nuevo();
	void anadir() {}    
    void modificar();
    void copiar();
    void eliminar();    
    void subir();
    void bajar();
    void seleccionado() {}

public slots:
    void actualizar() { actualizarTabla(); }

protected:
    QList<Compas> listaCompases;
    PreparadorTabla<Compas> preparadorTabla;  
};


#endif // EDITORCOMPASES_H
